<?php

Class Conexion{
	var $enlace;
	var $consultaActual;
	
	function Conexion(){}
	
	function abrir()
	{
		$this->enlace = mysql_pconnect();
		return $this->enlace;
	}
	
	function abrirC($hostname=null, $usuario=null, $password=null)
	{
		( $this->enlace = mysql_pconnect($hostname, $usuario, $password) ) || die("<br><br>Database Connection Error: " . mysql_errno() . " : " . mysql_error());
		return $this->enlace;
	}
	
	function seleccionarBaseDeDatos($baseDeDatos)
	{
		( $retu = mysql_select_db($baseDeDatos, $this->enlace) ) || die("<br><br>Error Selecting Database: " . mysql_errno() . " : " . mysql_error());
		return $retu;
	}
	
	function consultar($consulta)
	{
		$this->consultaActual = & $consulta;
		return mysql_query($consulta, $this->enlace);
	}
	
	function ejecutar($consulta){
		return $this->consultar($consulta);
	}
	
	function cantidadAfectada()
	{
		return mysql_affected_rows($this->enlace);
	}
	
	function real_escape_string($_data)
	{
		return mysql_real_escape_string($_data);
	}
	
	function sql_safe($s)
	{
	    if (get_magic_quotes_gpc())$s = stripslashes($s);
	    return mysql_real_escape_string($s);
	}
	
	
	function idInsertado()
	{
		return mysql_insert_id($this->enlace);
	}
	
	function recuperar($consulta)
	{
		$recurso = $this->consultar($consulta);
		$resu = new Resultado();
		$resu->recurso($recurso);
		return($recurso) ? $resu : false;
	}
	
	function error()
	{
		return mysql_errno($this->enlace).' '.mysql_error($this->enlace);
	}
	
	function terminarError()
	{
		echo "A database error have ocurred.";			echo "<br>Description is: ";
		echo $this->error();			echo "<br>Info is: ";
		echo mysql_info($this->enlace);		echo "<br>Exec Query is: ";
		echo $this->consultaActual;		echo "<br>"; echo "<br>";
		echo "Please send an email to the following address:";			echo "<br>";
		echo "Soporte 1er Nivel --> " . CONST_emailOcultoSistema . "";
		echo "<br>";
		echo "Soporte 2do Nivel --> " . CONST_emailOcultoSistema2 . "";
		exit;
	}
	
	function iniTrans()
	{
		//SET AUTOCOMMIT=0;
		//BEGIN
		$this->ejecutar('START TRANSACTION;');
	}
	
	function aceptarTrans()
	{
		$this->ejecutar('COMMIT;');
		//$this->finTrans();
	}
	
	function cancelarTrans()
	{
		$this->ejecutar('ROLLBACK;');
		//$this->finTrans();
	}
	
	/*
	function finTrans()
	{
	SET AUTOCOMMIT=1;
	}
	*/

}//Conexion
?>
